import estoque.view.*;
import estoque.controller.*;
import java.util.ArrayList;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.*;

public class CriaGrafico {
    
    public static JPanel CriaGrafico(JPanel jPanel) {
        CategoryDataset cds = createDataset();
        String titulo = "Gráfico Venda de Produtos";
        String eixoy = "Quantidade";
        String txt_legenda = "Legenda:";
        boolean legenda = true;
        boolean tooltips = true;
        boolean urls = true;
        JFreeChart graf = ChartFactory.createBarChart3D(titulo, txt_legenda, eixoy, cds, PlotOrientation.VERTICAL, legenda, tooltips, urls);
        ChartPanel myChartPanel = new ChartPanel(graf, true);
        myChartPanel.setSize(jPanel.getWidth(),jPanel.getHeight());
        myChartPanel.setVisible(true); 
        jPanel.removeAll();
        jPanel.add(myChartPanel); 
        jPanel.revalidate();
        jPanel.repaint(); 
        return jPanel;
    }    

     public static CategoryDataset createDataset() { 
        int cont=0;
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        for(Item a : JFControle.itens){
            cont=0;
            for(Venda y : JFControle.vendas){
               for(Item z : y.itens_vendidos){       
                   if (a.getItem().equals(z.getItem())){
                      cont+=z.getQuantidade();
                   }
               }
            }
            if(cont > 0) dataset.addValue(cont,a.getItem(),"Produtos");
       }
       return dataset; 
   }
      
    public static JPanel CriaGrafico2(JPanel jPanel) {
        CategoryDataset cds = createDataset2();
        String titulo = "Gráfico Venda por Clientes";
        String eixoy = "Percentual %";   
        String txt_legenda = "Legenda:";
        boolean legenda = true;
        boolean tooltips = true;
        boolean urls = true;
        JFreeChart graf = ChartFactory.createBarChart3D(titulo, txt_legenda, eixoy, cds, PlotOrientation.VERTICAL, legenda, tooltips, urls);
        ChartPanel myChartPanel = new ChartPanel(graf, true);
        myChartPanel.setSize(jPanel.getWidth(),jPanel.getHeight());
        myChartPanel.setVisible(true); 
        jPanel.removeAll();
        jPanel.add(myChartPanel); 
        jPanel.revalidate();
        jPanel.repaint(); 
        return jPanel;
    }    
    
   public static CategoryDataset createDataset2() { 
        int cont=0, total=0, maior=0, indice=0;
        ArrayList<Item> cli = new ArrayList<>();
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        cont=0;
        for(Venda y : JFControle.vendas){
           cont=0;
           for(Item z : y.itens_vendidos){       
               cont+=z.getQuantidade();
               total+=z.getQuantidade();
           }
           cli.add(new Item(y.getCliente(),cont,0));
       }
       for (int i=0;i<5;i++){
           for (Item x : cli){
               if (x.getQuantidade() > maior) {
                   indice = cli.indexOf(x);
                   maior= x.getQuantidade();
              }
           }
           if(maior > 0) dataset.addValue((maior * 100)/total,cli.get(indice).getItem(),"Clientes");
           cli.remove(indice);
           maior=0;
      } 
      return dataset; 
  }    
}